.class public Lcom/glympse/platform/common/UserList;
.super Ljava/lang/Object;
.source "UserList.java"


# instance fields
.field public m_listUsers:Lcom/glympse/platform/GVector$Users;

.field public m_oActiveUser:Lcom/glympse/platform/common/User;

.field public m_oUserComparator:Lcom/glympse/platform/common/User$UserComparator;


# direct methods
.method public constructor <init>()V
    .locals 1

    .prologue
    .line 29
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 24
    new-instance v0, Lcom/glympse/platform/GVector$Users;

    invoke-direct {v0}, Lcom/glympse/platform/GVector$Users;-><init>()V

    iput-object v0, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    .line 25
    new-instance v0, Lcom/glympse/platform/common/User$UserComparator;

    invoke-direct {v0}, Lcom/glympse/platform/common/User$UserComparator;-><init>()V

    iput-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oUserComparator:Lcom/glympse/platform/common/User$UserComparator;

    .line 26
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    .line 31
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->Clear()V

    .line 32
    return-void
.end method


# virtual methods
.method public ActivateNext()Z
    .locals 3

    .prologue
    .line 784
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    if-eqz v1, :cond_0

    .line 786
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    invoke-virtual {v1, v2}, Lcom/glympse/platform/GVector$Users;->indexOf(Ljava/lang/Object;)I

    move-result v0

    .line 787
    .local v0, nCur:I
    add-int/lit8 v1, v0, 0x1

    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->size()I

    move-result v2

    if-ge v1, v2, :cond_0

    .line 789
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    add-int/lit8 v2, v0, 0x1

    invoke-virtual {v1, v2}, Lcom/glympse/platform/GVector$Users;->elementAt(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    iput-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    .line 790
    const/4 v1, 0x1

    .line 795
    .end local v0           #nCur:I
    :goto_0
    return v1

    :cond_0
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public ActivatePrevious()Z
    .locals 4

    .prologue
    const/4 v3, 0x1

    .line 767
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    if-eqz v1, :cond_0

    .line 769
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    invoke-virtual {v1, v2}, Lcom/glympse/platform/GVector$Users;->indexOf(Ljava/lang/Object;)I

    move-result v0

    .line 770
    .local v0, nCur:I
    if-lez v0, :cond_0

    .line 772
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    sub-int v2, v0, v3

    invoke-virtual {v1, v2}, Lcom/glympse/platform/GVector$Users;->elementAt(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    iput-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    move v1, v3

    .line 778
    .end local v0           #nCur:I
    :goto_0
    return v1

    :cond_0
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public ActivateSelf()Z
    .locals 2

    .prologue
    .line 750
    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    if-eqz v1, :cond_0

    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    invoke-virtual {v1}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v1

    if-nez v1, :cond_1

    .line 752
    :cond_0
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->GetSelf()Lcom/glympse/platform/common/User;

    move-result-object v0

    .line 753
    .local v0, oUserSelf:Lcom/glympse/platform/common/User;
    if-eqz v0, :cond_1

    .line 755
    iput-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    .line 756
    const/4 v1, 0x1

    .line 761
    .end local v0           #oUserSelf:Lcom/glympse/platform/common/User;
    :goto_0
    return v1

    :cond_1
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public ActivateUser(Lcom/glympse/platform/common/User;)Z
    .locals 1
    .parameter "oUser"

    .prologue
    .line 801
    iget-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    if-eq v0, p1, :cond_0

    .line 803
    iput-object p1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    .line 804
    const/4 v0, 0x1

    .line 808
    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public AnyActive()Z
    .locals 8

    .prologue
    .line 831
    invoke-static {}, Lcom/glympse/platform/common/CorrectedTime;->GetTime()J

    move-result-wide v1

    .line 834
    .local v1, lCurrentTime:J
    iget-object v4, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 846
    const/4 v4, 0x0

    :goto_0
    return v4

    .line 836
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/User;

    .line 840
    .local v3, oUserCur:Lcom/glympse/platform/common/User;
    invoke-virtual {v3}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v4

    if-nez v4, :cond_0

    const-wide/16 v4, 0x0

    iget-wide v6, v3, Lcom/glympse/platform/common/User;->m_lExpireTime:J

    cmp-long v4, v4, v6

    if-eqz v4, :cond_2

    iget-wide v4, v3, Lcom/glympse/platform/common/User;->m_lExpireTime:J

    cmp-long v4, v4, v1

    if-lez v4, :cond_0

    .line 842
    :cond_2
    const/4 v4, 0x1

    goto :goto_0
.end method

.method protected Clear()V
    .locals 4

    .prologue
    .line 61
    iget-object v0, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v0}, Lcom/glympse/platform/GVector$Users;->removeAllElements()V

    .line 65
    new-instance v0, Lcom/glympse/platform/common/User;

    const-wide/16 v1, -0x1

    const/4 v3, 0x0

    invoke-direct {v0, v1, v2, v3}, Lcom/glympse/platform/common/User;-><init>(JLjava/lang/String;)V

    iput-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    .line 66
    iget-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    const/4 v1, 0x1

    iput-boolean v1, v0, Lcom/glympse/platform/common/User;->m_fSelf:Z

    .line 67
    iget-object v0, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v1

    iget-object v1, v1, Lcom/glympse/platform/Platform;->m_oConfig:Lcom/glympse/platform/Config;

    iget-object v1, v1, Lcom/glympse/platform/Config;->m_strNickName:Ljava/lang/String;

    invoke-virtual {v0, v1}, Lcom/glympse/platform/common/User;->SetDisplayName(Ljava/lang/String;)V

    .line 69
    iget-object v0, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    iget-object v1, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Users;->addElement(Ljava/lang/Object;)V

    .line 72
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v0

    iget v1, v0, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v1, v1, 0x400

    iput v1, v0, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 73
    return-void
.end method

.method public ComputeElapsedAndDistancesAndBearings()V
    .locals 15

    .prologue
    const-wide/16 v13, 0x0

    const/high16 v12, 0x7fc0

    const/4 v11, 0x0

    .line 871
    invoke-static {}, Lcom/glympse/platform/common/CorrectedTime;->GetTime()J

    move-result-wide v1

    .line 874
    .local v1, lCurrentTime:J
    const/4 v5, 0x0

    .line 875
    .local v5, oCoordsSelf:Lcom/glympse/platform/GCoordinates;
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->GetSelf()Lcom/glympse/platform/common/User;

    move-result-object v8

    .line 876
    .local v8, oUserSelf:Lcom/glympse/platform/common/User;
    if-eqz v8, :cond_0

    .line 878
    invoke-virtual {v8}, Lcom/glympse/platform/common/User;->GetLocPoint()Lcom/glympse/platform/common/LocPoint;

    move-result-object v9

    invoke-virtual {v9}, Lcom/glympse/platform/common/LocPoint;->HasLocation()Z

    move-result v9

    if-eqz v9, :cond_0

    .line 880
    new-instance v5, Lcom/glympse/platform/GCoordinates;

    .end local v5           #oCoordsSelf:Lcom/glympse/platform/GCoordinates;
    invoke-virtual {v8}, Lcom/glympse/platform/common/User;->GetLocPoint()Lcom/glympse/platform/common/LocPoint;

    move-result-object v9

    invoke-direct {v5, v9}, Lcom/glympse/platform/GCoordinates;-><init>(Lcom/glympse/platform/common/LocPoint;)V

    .line 885
    .restart local v5       #oCoordsSelf:Lcom/glympse/platform/GCoordinates;
    :cond_0
    iget-object v9, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v9}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :goto_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v9

    if-nez v9, :cond_1

    .line 916
    return-void

    .line 887
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v7

    check-cast v7, Lcom/glympse/platform/common/User;

    .line 889
    .local v7, oUserCur:Lcom/glympse/platform/common/User;
    iget-object v9, v7, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    iget-wide v3, v9, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    .line 890
    .local v3, lUserTime:J
    cmp-long v9, v3, v13

    if-gtz v9, :cond_2

    const-wide v9, 0x7fffffffffffffffL

    :goto_1
    iput-wide v9, v7, Lcom/glympse/platform/common/User;->m_lElapsed:J

    .line 894
    if-ne v7, v8, :cond_4

    .line 896
    iput v11, v7, Lcom/glympse/platform/common/User;->m_fltDistanceToMeters:F

    .line 897
    iput v11, v7, Lcom/glympse/platform/common/User;->m_fltBearingToDegrees:F

    goto :goto_0

    .line 891
    :cond_2
    cmp-long v9, v1, v3

    if-lez v9, :cond_3

    sub-long v9, v1, v3

    goto :goto_1

    :cond_3
    move-wide v9, v13

    goto :goto_1

    .line 901
    :cond_4
    invoke-virtual {v7}, Lcom/glympse/platform/common/User;->HasLocation()Z

    move-result v9

    if-eqz v9, :cond_5

    if-eqz v5, :cond_5

    .line 904
    new-instance v6, Lcom/glympse/platform/GCoordinates;

    iget-object v9, v7, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    invoke-direct {v6, v9}, Lcom/glympse/platform/GCoordinates;-><init>(Lcom/glympse/platform/common/LocPoint;)V

    .line 907
    .local v6, oCoordsUser:Lcom/glympse/platform/GCoordinates;
    invoke-virtual {v5, v6}, Lcom/glympse/platform/GCoordinates;->DistanceTo(Lcom/glympse/platform/GCoordinates;)F

    move-result v9

    iput v9, v7, Lcom/glympse/platform/common/User;->m_fltDistanceToMeters:F

    .line 908
    invoke-virtual {v5, v6}, Lcom/glympse/platform/GCoordinates;->BearingTo(Lcom/glympse/platform/GCoordinates;)F

    move-result v9

    iput v9, v7, Lcom/glympse/platform/common/User;->m_fltBearingToDegrees:F

    goto :goto_0

    .line 912
    .end local v6           #oCoordsUser:Lcom/glympse/platform/GCoordinates;
    :cond_5
    iput v12, v7, Lcom/glympse/platform/common/User;->m_fltDistanceToMeters:F

    .line 913
    iput v12, v7, Lcom/glympse/platform/common/User;->m_fltBearingToDegrees:F

    goto :goto_0
.end method

.method public DumpTracks()V
    .locals 4

    .prologue
    .line 49
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :goto_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-nez v2, :cond_0

    .line 56
    return-void

    .line 51
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    .line 53
    .local v1, oUserCur:Lcom/glympse/platform/common/User;
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "LOGGING TRACKS FOR "

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v3, v1, Lcom/glympse/platform/common/User;->m_strDisplayName:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 54
    iget-object v2, v1, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v2}, Lcom/glympse/platform/common/Track;->DumpTracks()V

    goto :goto_0
.end method

.method public FindById(J)Lcom/glympse/platform/common/User;
    .locals 4
    .parameter "lUserId"

    .prologue
    .line 87
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-nez v2, :cond_1

    .line 98
    const/4 v2, 0x0

    :goto_0
    return-object v2

    .line 89
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    .line 92
    .local v1, oUserCur:Lcom/glympse/platform/common/User;
    iget-wide v2, v1, Lcom/glympse/platform/common/User;->m_lUserId:J

    cmp-long v2, v2, p1

    if-nez v2, :cond_0

    move-object v2, v1

    .line 94
    goto :goto_0
.end method

.method public FindByTicketId(J)Lcom/glympse/platform/common/User;
    .locals 6
    .parameter "lTicketId"

    .prologue
    .line 105
    iget-object v4, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v1

    .local v1, iterUser:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 122
    const/4 v4, 0x0

    :goto_0
    return-object v4

    .line 107
    :cond_1
    invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/User;

    .line 110
    .local v3, oUserCur:Lcom/glympse/platform/common/User;
    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_listTickets:Lcom/glympse/platform/GVector$Tickets;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Tickets;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iterTicket:Ljava/util/Enumeration;
    :cond_2
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-eqz v4, :cond_0

    .line 112
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/glympse/platform/common/Ticket;

    .line 115
    .local v2, oTicketCur:Lcom/glympse/platform/common/Ticket;
    iget-wide v4, v2, Lcom/glympse/platform/common/Ticket;->m_lTicketId:J

    cmp-long v4, v4, p1

    if-nez v4, :cond_2

    move-object v4, v3

    .line 117
    goto :goto_0
.end method

.method public FindTicketByTicketId(J)Lcom/glympse/platform/common/Ticket;
    .locals 6
    .parameter "lTicketId"

    .prologue
    .line 129
    iget-object v4, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v1

    .local v1, iterUser:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 146
    const/4 v4, 0x0

    :goto_0
    return-object v4

    .line 131
    :cond_1
    invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/User;

    .line 134
    .local v3, oUserCur:Lcom/glympse/platform/common/User;
    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_listTickets:Lcom/glympse/platform/GVector$Tickets;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Tickets;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iterTicket:Ljava/util/Enumeration;
    :cond_2
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-eqz v4, :cond_0

    .line 136
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/glympse/platform/common/Ticket;

    .line 139
    .local v2, oTicketCur:Lcom/glympse/platform/common/Ticket;
    iget-wide v4, v2, Lcom/glympse/platform/common/Ticket;->m_lTicketId:J

    cmp-long v4, v4, p1

    if-nez v4, :cond_2

    move-object v4, v2

    .line 141
    goto :goto_0
.end method

.method public GetSelf()Lcom/glympse/platform/common/User;
    .locals 3

    .prologue
    .line 735
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-nez v2, :cond_1

    .line 744
    const/4 v2, 0x0

    :goto_0
    return-object v2

    .line 737
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    .line 739
    .local v1, oUserCur:Lcom/glympse/platform/common/User;
    invoke-virtual {v1}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v2

    if-eqz v2, :cond_0

    move-object v2, v1

    .line 741
    goto :goto_0
.end method

.method public IsSignedIn()Z
    .locals 5

    .prologue
    .line 79
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->GetSelf()Lcom/glympse/platform/common/User;

    move-result-object v0

    .line 80
    .local v0, oUserSelf:Lcom/glympse/platform/common/User;
    if-eqz v0, :cond_0

    const-wide/16 v1, -0x1

    iget-wide v3, v0, Lcom/glympse/platform/common/User;->m_lUserId:J

    cmp-long v1, v1, v3

    if-eqz v1, :cond_0

    const/4 v1, 0x1

    :goto_0
    return v1

    :cond_0
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public ProcessDone()V
    .locals 8

    .prologue
    .line 699
    invoke-static {}, Lcom/glympse/platform/common/CorrectedTime;->GetTime()J

    move-result-wide v1

    .line 702
    .local v1, lCurrent:J
    iget-object v4, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .end local p0
    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    :goto_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 730
    return-void

    .line 704
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/User;

    .line 709
    .local v3, oUserCur:Lcom/glympse/platform/common/User;
    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v3}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v5

    if-eqz v5, :cond_4

    move-wide v5, v1

    :goto_1
    const/4 v7, 0x0

    invoke-virtual {v4, v5, v6, v7}, Lcom/glympse/platform/common/Track;->RemoveOldLocations(JZ)Z

    move-result v4

    if-eqz v4, :cond_2

    .line 711
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v5, v5, 0x800

    iput v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 715
    :cond_2
    invoke-virtual {v3}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v4

    if-eqz v4, :cond_3

    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v4}, Lcom/glympse/platform/common/Track;->isEmpty()Z

    move-result v4

    if-nez v4, :cond_3

    .line 717
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oServerPost:Lcom/glympse/platform/common/ServerPost;

    iget-object v4, v4, Lcom/glympse/platform/common/ServerPost;->m_oTrackLocal:Lcom/glympse/platform/common/Track;

    iget-object v5, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v5}, Lcom/glympse/platform/common/Track;->lastElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/Track$TrackLoc;

    iget-wide v5, p0, Lcom/glympse/platform/common/Track$TrackLoc;->m_lTime:J

    const/4 v7, 0x1

    invoke-virtual {v4, v5, v6, v7}, Lcom/glympse/platform/common/Track;->RemoveOldLocations(JZ)Z

    move-result v4

    if-eqz v4, :cond_3

    .line 719
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v5, v5, 0x800

    iput v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 725
    :cond_3
    iget v4, v3, Lcom/glympse/platform/common/User;->m_nAvatarVersion:I

    iget v5, v3, Lcom/glympse/platform/common/User;->m_nAvatarVersionLocal:I

    if-le v4, v5, :cond_0

    .line 727
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oJobQueue:Lcom/glympse/platform/common/JobQueue;

    new-instance v5, Lcom/glympse/platform/common/DownloadAvatarJob;

    invoke-direct {v5, v3}, Lcom/glympse/platform/common/DownloadAvatarJob;-><init>(Lcom/glympse/platform/common/User;)V

    invoke-virtual {v4, v5}, Lcom/glympse/platform/common/JobQueue;->AddJob(Lcom/glympse/platform/common/JobQueue$Job;)V

    goto :goto_0

    .line 709
    :cond_4
    iget-object v5, v3, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    iget-wide v5, v5, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    goto :goto_1
.end method

.method public ProcessSentenceF(Lcom/glympse/platform/GVector$NameValueNodes;J)Z
    .locals 21
    .parameter
    .parameter "lResponseTime"

    .prologue
    .line 152
    .local p1, listNameValues:Lcom/glympse/platform/GVector$NameValueNodes;,"Lcom/glympse/platform/GVector$NameValueNodes;"
    const-wide/16 v14, -0x1

    .line 153
    .local v14, lUserId:J
    const/16 v20, 0x0

    .line 154
    .local v20, strUserId:Ljava/lang/String;
    const/4 v11, 0x0

    .line 155
    .local v11, fSelf:Z
    const/4 v12, 0x0

    .line 158
    .local v12, fUpdated:Z
    invoke-virtual/range {p1 .. p1}, Lcom/glympse/platform/GVector$NameValueNodes;->elements()Ljava/util/Enumeration;

    move-result-object v13

    .local v13, iter:Ljava/util/Enumeration;
    :cond_0
    :goto_0
    invoke-interface {v13}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 186
    const-wide/16 v4, -0x1

    cmp-long v4, v4, v14

    if-nez v4, :cond_3

    .line 188
    const-string v4, "Failed to find user ID in friend line."

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 189
    const/4 v4, 0x0

    .line 425
    .end local p0
    :goto_1
    return v4

    .line 160
    .restart local p0
    :cond_1
    invoke-interface {v13}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v17

    check-cast v17, Lcom/glympse/platform/common/NameValueNode;

    .line 163
    .local v17, oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    if-eqz v4, :cond_0

    .line 166
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "uid"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_2

    .line 169
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->Base32ToLong(Ljava/lang/String;)J

    move-result-wide v14

    .line 170
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object/from16 v20, v0

    .line 171
    const-wide/16 v4, 0x0

    cmp-long v4, v4, v14

    if-nez v4, :cond_0

    .line 173
    const-wide/16 v14, -0x1

    goto :goto_0

    .line 178
    :cond_2
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "me"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_0

    .line 180
    const/4 v11, 0x1

    goto :goto_0

    .line 192
    .end local v17           #oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    :cond_3
    const/16 v18, 0x0

    .line 195
    .local v18, oUser:Lcom/glympse/platform/common/User;
    if-eqz v11, :cond_8

    .line 197
    invoke-virtual/range {p0 .. p0}, Lcom/glympse/platform/common/UserList;->GetSelf()Lcom/glympse/platform/common/User;

    move-result-object v18

    .line 198
    if-nez v18, :cond_4

    .line 200
    const/4 v4, 0x0

    goto :goto_1

    .line 206
    :cond_4
    move-wide v0, v14

    move-object/from16 v2, v18

    iput-wide v0, v2, Lcom/glympse/platform/common/User;->m_lUserId:J

    .line 207
    invoke-static/range {v20 .. v20}, Lcom/glympse/platform/common/Helpers;->SafeStr(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    move-object v0, v4

    move-object/from16 v1, v18

    iput-object v0, v1, Lcom/glympse/platform/common/User;->m_strUserId:Ljava/lang/String;

    .line 226
    :cond_5
    :goto_2
    invoke-virtual/range {p1 .. p1}, Lcom/glympse/platform/GVector$NameValueNodes;->elements()Ljava/util/Enumeration;

    move-result-object v13

    .end local p0
    :cond_6
    :goto_3
    invoke-interface {v13}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_9

    .line 420
    if-eqz v12, :cond_7

    .line 422
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v5, v5, 0x400

    iput v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 425
    :cond_7
    const/4 v4, 0x1

    goto :goto_1

    .line 214
    .restart local p0
    :cond_8
    move-object/from16 v0, p0

    move-wide v1, v14

    invoke-virtual {v0, v1, v2}, Lcom/glympse/platform/common/UserList;->FindById(J)Lcom/glympse/platform/common/User;

    move-result-object v18

    .line 217
    if-nez v18, :cond_5

    .line 219
    new-instance v18, Lcom/glympse/platform/common/User;

    .end local v18           #oUser:Lcom/glympse/platform/common/User;
    move-object/from16 v0, v18

    move-wide v1, v14

    move-object/from16 v3, v20

    invoke-direct {v0, v1, v2, v3}, Lcom/glympse/platform/common/User;-><init>(JLjava/lang/String;)V

    .line 220
    .restart local v18       #oUser:Lcom/glympse/platform/common/User;
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    move-object v4, v0

    move-object v0, v4

    move-object/from16 v1, v18

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Users;->addElement(Ljava/lang/Object;)V

    .line 221
    const/4 v12, 0x1

    goto :goto_2

    .line 228
    .end local p0
    :cond_9
    invoke-interface {v13}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v17

    check-cast v17, Lcom/glympse/platform/common/NameValueNode;

    .line 231
    .restart local v17       #oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    if-eqz v4, :cond_6

    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    if-eqz v4, :cond_6

    .line 237
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "lpt"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_18

    .line 239
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->IsEmpty(Ljava/lang/String;)Z

    move-result v4

    if-nez v4, :cond_6

    .line 244
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    const/16 v5, 0x2c

    invoke-static {v4, v5}, Lcom/glympse/platform/common/Helpers;->StrSplit(Ljava/lang/String;C)Lcom/glympse/platform/GVector$Strings;

    move-result-object v16

    .line 247
    .local v16, listLpt:Lcom/glympse/platform/GVector$Strings;,"Lcom/glympse/platform/GVector$Strings;"
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->isEmpty()Z

    move-result v4

    if-nez v4, :cond_a

    .line 249
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const/4 v5, 0x0

    move-object/from16 v0, v16

    move v1, v5

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Ljava/lang/String;

    invoke-static/range {p0 .. p0}, Lcom/glympse/platform/common/Helpers;->ParseLong(Ljava/lang/String;)J

    move-result-wide v5

    iput-wide v5, v4, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    .line 250
    const/4 v12, 0x1

    .line 254
    :cond_a
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x1

    if-le v4, v5, :cond_b

    .line 256
    const/4 v4, 0x1

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 257
    .local v19, str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_11

    const-wide/high16 v5, 0x7ff8

    :goto_4
    iput-wide v5, v4, Lcom/glympse/platform/common/LocPoint;->m_dLatitude:D

    .line 261
    .end local v19           #str:Ljava/lang/String;
    :cond_b
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x2

    if-le v4, v5, :cond_c

    .line 263
    const/4 v4, 0x2

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 264
    .restart local v19       #str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_12

    const-wide/high16 v5, 0x7ff8

    :goto_5
    iput-wide v5, v4, Lcom/glympse/platform/common/LocPoint;->m_dLongitude:D

    .line 267
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    invoke-virtual {v4}, Lcom/glympse/platform/common/LocPoint;->HasTime()Z

    move-result v4

    if-eqz v4, :cond_c

    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    invoke-virtual {v4}, Lcom/glympse/platform/common/LocPoint;->HasLocation()Z

    move-result v4

    if-eqz v4, :cond_c

    .line 270
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    move-object v4, v0

    .line 271
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v5, v0

    iget-wide v5, v5, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    .line 272
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v7, v0

    iget-wide v7, v7, Lcom/glympse/platform/common/LocPoint;->m_dLatitude:D

    const-wide v9, 0x412e848000000000L

    mul-double/2addr v7, v9

    double-to-int v7, v7

    .line 273
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v8, v0

    iget-wide v8, v8, Lcom/glympse/platform/common/LocPoint;->m_dLongitude:D

    const-wide v10, 0x412e848000000000L

    mul-double/2addr v8, v10

    double-to-int v8, v8

    .line 274
    invoke-virtual/range {v18 .. v18}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v9

    if-eqz v9, :cond_13

    move-wide/from16 v9, p2

    .line 270
    :goto_6
    invoke-virtual/range {v4 .. v10}, Lcom/glympse/platform/common/Track;->AddLocation(JIIJ)Z

    move-result v4

    if-eqz v4, :cond_c

    .line 277
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v5, v5, 0x800

    iput v5, v4, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 283
    .end local v19           #str:Ljava/lang/String;
    :cond_c
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x3

    if-le v4, v5, :cond_d

    .line 285
    const/4 v4, 0x3

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 286
    .restart local v19       #str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_14

    const/high16 v5, 0x7fc0

    :goto_7
    iput v5, v4, Lcom/glympse/platform/common/LocPoint;->m_fltBearingDegrees:F

    .line 290
    .end local v19           #str:Ljava/lang/String;
    :cond_d
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x4

    if-le v4, v5, :cond_e

    .line 292
    const/4 v4, 0x4

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 293
    .restart local v19       #str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_15

    const/high16 v5, 0x7fc0

    :goto_8
    iput v5, v4, Lcom/glympse/platform/common/LocPoint;->m_fltSpeedMetersPerSecond:F

    .line 297
    .end local v19           #str:Ljava/lang/String;
    :cond_e
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x5

    if-le v4, v5, :cond_f

    .line 299
    const/4 v4, 0x5

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 300
    .restart local v19       #str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_16

    const/high16 v5, 0x7fc0

    :goto_9
    iput v5, v4, Lcom/glympse/platform/common/LocPoint;->m_fltAltitudeMeters:F

    .line 304
    .end local v19           #str:Ljava/lang/String;
    :cond_f
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x6

    if-le v4, v5, :cond_10

    .line 306
    const/4 v4, 0x6

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/GVector$Strings;->elementAt(I)Ljava/lang/Object;

    move-result-object v19

    check-cast v19, Ljava/lang/String;

    .line 307
    .restart local v19       #str:Ljava/lang/String;
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v4, v0

    const-string v5, "?"

    move-object/from16 v0, v19

    move-object v1, v5

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_17

    const/high16 v5, 0x7fc0

    :goto_a
    iput v5, v4, Lcom/glympse/platform/common/LocPoint;->m_fltAccuracyMeters:F

    .line 311
    .end local v19           #str:Ljava/lang/String;
    :cond_10
    invoke-virtual/range {v16 .. v16}, Lcom/glympse/platform/GVector$Strings;->size()I

    move-result v4

    const/4 v5, 0x7

    if-le v4, v5, :cond_6

    .line 313
    const-string v4, "Unknown friend line \"lpt\" value found."

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    goto/16 :goto_3

    .line 257
    .restart local v19       #str:Ljava/lang/String;
    :cond_11
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseDouble(Ljava/lang/String;)D

    move-result-wide v5

    goto/16 :goto_4

    .line 264
    :cond_12
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseDouble(Ljava/lang/String;)D

    move-result-wide v5

    goto/16 :goto_5

    .line 274
    :cond_13
    move-object/from16 v0, v18

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v9, v0

    iget-wide v9, v9, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    goto/16 :goto_6

    .line 286
    :cond_14
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseFloat(Ljava/lang/String;)F

    move-result v5

    goto/16 :goto_7

    .line 293
    :cond_15
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseDouble(Ljava/lang/String;)D

    move-result-wide v5

    const-wide v7, 0x3fe0765431d2d84cL

    mul-double/2addr v5, v7

    double-to-float v5, v5

    goto :goto_8

    .line 300
    :cond_16
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseFloat(Ljava/lang/String;)F

    move-result v5

    goto :goto_9

    .line 307
    :cond_17
    invoke-static/range {v19 .. v19}, Lcom/glympse/platform/common/Helpers;->ParseFloat(Ljava/lang/String;)F

    move-result v5

    goto :goto_a

    .line 319
    .end local v16           #listLpt:Lcom/glympse/platform/GVector$Strings;,"Lcom/glympse/platform/GVector$Strings;"
    .end local v19           #str:Ljava/lang/String;
    :cond_18
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "act"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_19

    .line 321
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->SafeStr(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    move-object v0, v4

    move-object/from16 v1, v18

    iput-object v0, v1, Lcom/glympse/platform/common/User;->m_strActivity:Ljava/lang/String;

    .line 322
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 326
    :cond_19
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "dpn"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_1c

    .line 328
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    move-object/from16 v0, v18

    move-object v1, v4

    invoke-virtual {v0, v1}, Lcom/glympse/platform/common/User;->SetDisplayName(Ljava/lang/String;)V

    .line 331
    invoke-virtual/range {v18 .. v18}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v4

    if-eqz v4, :cond_1b

    .line 332
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oConfig:Lcom/glympse/platform/Config;

    iget-object v4, v4, Lcom/glympse/platform/Config;->m_strNickName:Ljava/lang/String;

    if-eqz v4, :cond_1a

    .line 333
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oConfig:Lcom/glympse/platform/Config;

    iget-object v4, v4, Lcom/glympse/platform/Config;->m_strNickName:Ljava/lang/String;

    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v5, v0

    invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_1b

    .line 336
    :cond_1a
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oConfig:Lcom/glympse/platform/Config;

    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v5, v0

    iput-object v5, v4, Lcom/glympse/platform/Config;->m_strNickName:Ljava/lang/String;

    .line 337
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oConfig:Lcom/glympse/platform/Config;

    invoke-virtual {v4}, Lcom/glympse/platform/Config;->Save()V

    .line 340
    :cond_1b
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 344
    :cond_1c
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "pht"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_1d

    .line 346
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v4

    move v0, v4

    move-object/from16 v1, v18

    iput v0, v1, Lcom/glympse/platform/common/User;->m_nPhoneNumberType:I

    .line 347
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 351
    :cond_1d
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "phn"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_1e

    .line 353
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->SafeStr(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    move-object v0, v4

    move-object/from16 v1, v18

    iput-object v0, v1, Lcom/glympse/platform/common/User;->m_strPhoneNumber:Ljava/lang/String;

    .line 354
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 358
    :cond_1e
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "email"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_1f

    .line 360
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->SafeStr(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    move-object v0, v4

    move-object/from16 v1, v18

    iput-object v0, v1, Lcom/glympse/platform/common/User;->m_strEmail:Ljava/lang/String;

    .line 361
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 365
    :cond_1f
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "emailv"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_20

    .line 367
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v4

    move v0, v4

    move-object/from16 v1, v18

    iput v0, v1, Lcom/glympse/platform/common/User;->m_nEmailValid:I

    .line 368
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 372
    :cond_20
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "wtf"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_21

    .line 374
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v4

    move v0, v4

    move-object/from16 v1, v18

    iput v0, v1, Lcom/glympse/platform/common/User;->m_nWatching:I

    .line 375
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 379
    :cond_21
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "pic"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_22

    .line 381
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v4

    move v0, v4

    move-object/from16 v1, v18

    iput v0, v1, Lcom/glympse/platform/common/User;->m_nAvatarVersion:I

    goto/16 :goto_3

    .line 385
    :cond_22
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "pin"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_23

    .line 387
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v4

    move v0, v4

    move-object/from16 v1, v18

    iput v0, v1, Lcom/glympse/platform/common/User;->m_nPin:I

    .line 388
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 392
    :cond_23
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "cuts"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_24

    .line 394
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseLong(Ljava/lang/String;)J

    move-result-wide v4

    move-wide v0, v4

    move-object/from16 v2, v18

    iput-wide v0, v2, Lcom/glympse/platform/common/User;->m_lCreatedTime:J

    .line 395
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 399
    :cond_24
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "ets"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_25

    .line 401
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->ParseLong(Ljava/lang/String;)J

    move-result-wide v4

    move-wide v0, v4

    move-object/from16 v2, v18

    iput-wide v0, v2, Lcom/glympse/platform/common/User;->m_lExpireTime:J

    .line 402
    const/4 v12, 0x1

    goto/16 :goto_3

    .line 406
    :cond_25
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "ard"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-nez v4, :cond_6

    .line 412
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "uid"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-nez v4, :cond_6

    .line 413
    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v4, v0

    const-string v5, "me"

    invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v4

    if-nez v4, :cond_6

    .line 415
    new-instance v4, Ljava/lang/StringBuilder;

    const-string v5, "Unknown friend line value found ["

    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    move-object/from16 v0, v17

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v5, v0

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "]."

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-static {v4}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    goto/16 :goto_3
.end method

.method public ProcessSentenceFD(Lcom/glympse/platform/GVector$NameValueNodes;)Z
    .locals 8
    .parameter

    .prologue
    .local p1, listNameValues:Lcom/glympse/platform/GVector$NameValueNodes;,"Lcom/glympse/platform/GVector$NameValueNodes;"
    const/4 v7, 0x0

    .line 432
    const-wide/16 v1, -0x1

    .line 435
    .local v1, lUserId:J
    invoke-virtual {p1}, Lcom/glympse/platform/GVector$NameValueNodes;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v5

    if-nez v5, :cond_1

    .line 452
    :goto_0
    const-wide/16 v5, -0x1

    cmp-long v5, v5, v1

    if-nez v5, :cond_2

    .line 454
    const-string v5, "Failed to find user ID in FD line."

    invoke-static {v5}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    move v5, v7

    .line 490
    :goto_1
    return v5

    .line 437
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/NameValueNode;

    .line 440
    .local v3, oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    iget-object v5, v3, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    if-eqz v5, :cond_0

    .line 443
    iget-object v5, v3, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    const-string v6, "uid"

    invoke-virtual {v5, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v5

    if-eqz v5, :cond_0

    .line 445
    iget-object v5, v3, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    invoke-static {v5}, Lcom/glympse/platform/common/Helpers;->Base32ToLong(Ljava/lang/String;)J

    move-result-wide v1

    .line 446
    goto :goto_0

    .line 459
    .end local v3           #oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    :cond_2
    invoke-virtual {p0, v1, v2}, Lcom/glympse/platform/common/UserList;->UserFromId(J)Lcom/glympse/platform/common/User;

    move-result-object v4

    .line 462
    .local v4, oUser:Lcom/glympse/platform/common/User;
    if-nez v4, :cond_3

    .line 464
    const-string v5, "Failed to find user to drop."

    invoke-static {v5}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    move v5, v7

    .line 465
    goto :goto_1

    .line 468
    :cond_3
    invoke-virtual {v4}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v5

    if-eqz v5, :cond_4

    .line 470
    const-string v5, "FD line said to drop ourself."

    invoke-static {v5}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    move v5, v7

    .line 471
    goto :goto_1

    .line 475
    :cond_4
    iget-object v5, p0, Lcom/glympse/platform/common/UserList;->m_oActiveUser:Lcom/glympse/platform/common/User;

    if-ne v4, v5, :cond_5

    .line 478
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->ActivateNext()Z

    move-result v5

    if-nez v5, :cond_5

    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->ActivatePrevious()Z

    move-result v5

    if-nez v5, :cond_5

    .line 480
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->ActivateSelf()Z

    .line 485
    :cond_5
    iget-object v5, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v5, v4}, Lcom/glympse/platform/GVector$Users;->removeElement(Ljava/lang/Object;)Z

    .line 488
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v5

    iget v6, v5, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v6, v6, 0x400

    iput v6, v5, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 490
    const/4 v5, 0x1

    goto :goto_1
.end method

.method public ProcessSentenceFT(Lcom/glympse/platform/GVector$NameValueNodes;J)Z
    .locals 21
    .parameter
    .parameter "lResponseTime"

    .prologue
    .line 503
    .local p1, listNameValues:Lcom/glympse/platform/GVector$NameValueNodes;,"Lcom/glympse/platform/GVector$NameValueNodes;"
    const-wide/16 v13, -0x1

    .line 505
    .local v13, lUserId:J
    invoke-virtual/range {p1 .. p1}, Lcom/glympse/platform/GVector$NameValueNodes;->elements()Ljava/util/Enumeration;

    move-result-object v10

    .line 506
    .local v10, iter:Ljava/util/Enumeration;
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_0

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, v3

    .line 509
    .local v19, oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    :goto_0
    if-nez v19, :cond_1

    .line 530
    :goto_1
    const-wide/16 v6, -0x1

    cmp-long v3, v6, v13

    if-nez v3, :cond_5

    .line 532
    const-string v3, "Failed to find user ID in FT line."

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 533
    const/4 v3, 0x0

    .line 623
    .end local p0
    :goto_2
    return v3

    .line 506
    .end local v19           #oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    .restart local p0
    :cond_0
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_0

    .line 512
    .restart local v19       #oNodeCur:Lcom/glympse/platform/common/NameValueNode;
    :cond_1
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v3, v0

    if-eqz v3, :cond_3

    .line 515
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v3, v0

    const-string v4, "uid"

    invoke-virtual {v3, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_3

    .line 517
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Base32ToLong(Ljava/lang/String;)J

    move-result-wide v13

    .line 520
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_2

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, v3

    .line 521
    :goto_3
    goto :goto_1

    .line 520
    :cond_2
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_3

    .line 526
    :cond_3
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_4

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, v3

    :goto_4
    goto :goto_0

    :cond_4
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_4

    .line 536
    :cond_5
    move-object/from16 v0, p0

    move-wide v1, v13

    invoke-virtual {v0, v1, v2}, Lcom/glympse/platform/common/UserList;->UserFromId(J)Lcom/glympse/platform/common/User;

    move-result-object v20

    .line 539
    .local v20, oUser:Lcom/glympse/platform/common/User;
    if-nez v20, :cond_7

    .line 541
    const-string v3, "Failed to find user to add tracks to."

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 542
    const/4 v3, 0x0

    goto :goto_2

    .line 549
    .end local p0
    :cond_6
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_9

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, p0

    .line 547
    :cond_7
    :goto_5
    if-eqz v19, :cond_8

    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strName:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->IsEmpty(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_6

    .line 553
    :cond_8
    const-wide/16 v4, 0x0

    .line 554
    .local v4, lEpochBase:J
    const/4 v15, 0x0

    .local v15, nLatitudeBaseE5:I
    const/16 v17, 0x0

    .line 557
    .local v17, nLongitudeBaseE5:I
    :goto_6
    if-nez v19, :cond_a

    .line 623
    const/4 v3, 0x1

    goto :goto_2

    .line 549
    .end local v4           #lEpochBase:J
    .end local v15           #nLatitudeBaseE5:I
    .end local v17           #nLongitudeBaseE5:I
    :cond_9
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_5

    .line 560
    .restart local v4       #lEpochBase:J
    .restart local v15       #nLatitudeBaseE5:I
    .restart local v17       #nLongitudeBaseE5:I
    :cond_a
    const-wide/16 v11, 0x0

    .line 563
    .local v11, lEpochOffest:J
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->IsEmpty(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_b

    .line 565
    const-wide/16 v11, 0x3e8

    .line 585
    :goto_7
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_d

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, p0

    .line 586
    :goto_8
    if-nez v19, :cond_e

    .line 588
    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Failed to find latitude in FT sentence of "

    .end local v4           #lEpochBase:J
    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual/range {p1 .. p1}, Lcom/glympse/platform/GVector$NameValueNodes;->size()I

    move-result v4

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " items"

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 589
    const/4 v3, 0x0

    goto/16 :goto_2

    .line 571
    .restart local v4       #lEpochBase:J
    :cond_b
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->ParseLong(Ljava/lang/String;)J

    move-result-wide v11

    .line 572
    const-wide/16 v6, 0x0

    cmp-long v3, v11, v6

    if-lez v3, :cond_c

    .line 574
    const-wide/16 v6, 0x3e8

    mul-long/2addr v11, v6

    goto :goto_7

    .line 579
    :cond_c
    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Failed to parse FT time offset \""

    .end local v4           #lEpochBase:J
    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v4, v0

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, "\"."

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 580
    const/4 v3, 0x0

    goto/16 :goto_2

    .line 585
    .restart local v4       #lEpochBase:J
    :cond_d
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_8

    .line 593
    :cond_e
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v16

    .line 596
    .local v16, nLatitudeOffsetE5:I
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_f

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, p0

    .line 597
    :goto_9
    if-nez v19, :cond_10

    .line 599
    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Failed to find longitude in FT sentence of "

    .end local v4           #lEpochBase:J
    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual/range {p1 .. p1}, Lcom/glympse/platform/GVector$NameValueNodes;->size()I

    move-result v4

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " items"

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    .line 600
    const/4 v3, 0x0

    goto/16 :goto_2

    .line 596
    .restart local v4       #lEpochBase:J
    :cond_f
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_9

    .line 604
    :cond_10
    move-object/from16 v0, v19

    iget-object v0, v0, Lcom/glympse/platform/common/NameValueNode;->m_strValue:Ljava/lang/String;

    move-object v3, v0

    invoke-static {v3}, Lcom/glympse/platform/common/Helpers;->ParseInt(Ljava/lang/String;)I

    move-result v18

    .line 607
    .local v18, nLongitudeOffsetE5:I
    add-long/2addr v4, v11

    .line 608
    add-int v15, v15, v16

    .line 609
    add-int v17, v17, v18

    .line 612
    move-object/from16 v0, v20

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    move-object v3, v0

    mul-int/lit8 v6, v15, 0xa

    mul-int/lit8 v7, v17, 0xa

    .line 613
    invoke-virtual/range {v20 .. v20}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v8

    if-eqz v8, :cond_12

    move-wide/from16 v8, p2

    .line 612
    :goto_a
    invoke-virtual/range {v3 .. v9}, Lcom/glympse/platform/common/Track;->AddLocation(JIIJ)Z

    move-result v3

    if-eqz v3, :cond_11

    .line 616
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v3

    iget v6, v3, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v6, v6, 0x800

    iput v6, v3, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    .line 620
    :cond_11
    invoke-interface {v10}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v3

    if-eqz v3, :cond_13

    invoke-interface {v10}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/NameValueNode;

    move-object/from16 v19, p0

    :goto_b
    goto/16 :goto_6

    .line 613
    :cond_12
    move-object/from16 v0, v20

    iget-object v0, v0, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    move-object v8, v0

    iget-wide v8, v8, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    goto :goto_a

    .line 620
    :cond_13
    const/4 v3, 0x0

    move-object/from16 v19, v3

    goto :goto_b
.end method

.method public ProcessSentenceTR(Lcom/glympse/platform/GVector$NameValueNodes;)Z
    .locals 13
    .parameter

    .prologue
    .local p1, listNameValues:Lcom/glympse/platform/GVector$NameValueNodes;,"Lcom/glympse/platform/GVector$NameValueNodes;"
    const/4 v12, 0x0

    const/4 v11, 0x1

    .line 631
    new-instance v5, Lcom/glympse/platform/common/Ticket;

    invoke-direct {v5}, Lcom/glympse/platform/common/Ticket;-><init>()V

    .line 634
    .local v5, oTicketNew:Lcom/glympse/platform/common/Ticket;
    invoke-virtual {v5, p1}, Lcom/glympse/platform/common/Ticket;->Parse(Lcom/glympse/platform/GVector$NameValueNodes;)V

    .line 637
    const-wide/16 v7, 0x0

    iget-wide v9, v5, Lcom/glympse/platform/common/Ticket;->m_lTicketId:J

    cmp-long v7, v7, v9

    if-eqz v7, :cond_0

    const-wide/16 v7, -0x1

    iget-wide v9, v5, Lcom/glympse/platform/common/Ticket;->m_lUserId:J

    cmp-long v7, v7, v9

    if-nez v7, :cond_1

    .line 639
    :cond_0
    const-string v7, "Failed to find ticket ID and/or user ID in TR line."

    invoke-static {v7}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    move v7, v12

    .line 693
    :goto_0
    return v7

    .line 644
    :cond_1
    iget-wide v7, v5, Lcom/glympse/platform/common/Ticket;->m_lUserId:J

    invoke-virtual {p0, v7, v8}, Lcom/glympse/platform/common/UserList;->UserFromId(J)Lcom/glympse/platform/common/User;

    move-result-object v6

    .line 647
    .local v6, oUser:Lcom/glympse/platform/common/User;
    if-nez v6, :cond_2

    .line 649
    const-string v7, "Failed to find user specified in TR line."

    invoke-static {v7}, Lcom/glympse/platform/common/Helpers;->Log(Ljava/lang/String;)V

    move v7, v11

    .line 650
    goto :goto_0

    .line 654
    :cond_2
    const/4 v4, 0x0

    .line 655
    .local v4, oTicketFound:Lcom/glympse/platform/common/Ticket;
    iget-object v7, v6, Lcom/glympse/platform/common/User;->m_listTickets:Lcom/glympse/platform/GVector$Tickets;

    invoke-virtual {v7}, Lcom/glympse/platform/GVector$Tickets;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_3
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v7

    if-nez v7, :cond_5

    .line 668
    :goto_1
    if-eqz v4, :cond_6

    .line 671
    iget-wide v1, v4, Lcom/glympse/platform/common/Ticket;->m_lExpireTime:J

    .line 674
    .local v1, lExpireTime:J
    invoke-virtual {v4, p1}, Lcom/glympse/platform/common/Ticket;->Parse(Lcom/glympse/platform/GVector$NameValueNodes;)V

    .line 677
    iget-wide v7, v4, Lcom/glympse/platform/common/Ticket;->m_lExpireTime:J

    cmp-long v7, v1, v7

    if-eqz v7, :cond_4

    .line 679
    iput-boolean v11, v6, Lcom/glympse/platform/common/User;->m_fTicketsNeedsSorting:Z

    .line 691
    .end local v1           #lExpireTime:J
    :cond_4
    :goto_2
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v7

    iget v8, v7, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    or-int/lit16 v8, v8, 0x400

    iput v8, v7, Lcom/glympse/platform/Platform;->m_nUpdateFlags:I

    move v7, v11

    .line 693
    goto :goto_0

    .line 657
    :cond_5
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/Ticket;

    .line 659
    .local v3, oTicketCur:Lcom/glympse/platform/common/Ticket;
    iget-wide v7, v3, Lcom/glympse/platform/common/Ticket;->m_lTicketId:J

    iget-wide v9, v5, Lcom/glympse/platform/common/Ticket;->m_lTicketId:J

    cmp-long v7, v7, v9

    if-nez v7, :cond_3

    .line 661
    move-object v4, v3

    .line 662
    goto :goto_1

    .line 686
    .end local v3           #oTicketCur:Lcom/glympse/platform/common/Ticket;
    :cond_6
    iget-object v7, v6, Lcom/glympse/platform/common/User;->m_listTickets:Lcom/glympse/platform/GVector$Tickets;

    invoke-virtual {v7, v5, v12}, Lcom/glympse/platform/GVector$Tickets;->insertElementAt(Ljava/lang/Object;I)V

    .line 687
    iput-boolean v11, v6, Lcom/glympse/platform/common/User;->m_fTicketsNeedsSorting:Z

    goto :goto_2
.end method

.method public Sort()V
    .locals 4

    .prologue
    .line 922
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->ComputeElapsedAndDistancesAndBearings()V

    .line 923
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    iget-object v3, p0, Lcom/glympse/platform/common/UserList;->m_oUserComparator:Lcom/glympse/platform/common/User$UserComparator;

    invoke-virtual {v2, v3}, Lcom/glympse/platform/GVector$Users;->Sort(Lcom/glympse/platform/GComparator;)V

    .line 926
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :goto_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-nez v2, :cond_0

    .line 932
    return-void

    .line 928
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    .line 930
    .local v1, oUserCur:Lcom/glympse/platform/common/User;
    invoke-virtual {v1}, Lcom/glympse/platform/common/User;->SortTickets()V

    goto :goto_0
.end method

.method public Start()V
    .locals 0

    .prologue
    .line 37
    return-void
.end method

.method public Stop()V
    .locals 0

    .prologue
    .line 42
    invoke-virtual {p0}, Lcom/glympse/platform/common/UserList;->Clear()V

    .line 43
    return-void
.end method

.method public TrimTrails()V
    .locals 8

    .prologue
    .line 852
    invoke-static {}, Lcom/glympse/platform/common/CorrectedTime;->GetTime()J

    move-result-wide v1

    .line 854
    .local v1, lCurrentTime:J
    iget-object v4, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v4}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .end local p0
    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    :goto_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v4

    if-nez v4, :cond_1

    .line 866
    return-void

    .line 856
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/glympse/platform/common/User;

    .line 858
    .local v3, oUserCur:Lcom/glympse/platform/common/User;
    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v3}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v5

    if-eqz v5, :cond_2

    move-wide v5, v1

    :goto_1
    const/4 v7, 0x0

    invoke-virtual {v4, v5, v6, v7}, Lcom/glympse/platform/common/Track;->RemoveOldLocations(JZ)Z

    .line 861
    invoke-virtual {v3}, Lcom/glympse/platform/common/User;->IsSelf()Z

    move-result v4

    if-eqz v4, :cond_0

    iget-object v4, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v4}, Lcom/glympse/platform/common/Track;->isEmpty()Z

    move-result v4

    if-nez v4, :cond_0

    .line 863
    invoke-static {}, Lcom/glympse/platform/Platform;->instance()Lcom/glympse/platform/Platform;

    move-result-object v4

    iget-object v4, v4, Lcom/glympse/platform/Platform;->m_oServerPost:Lcom/glympse/platform/common/ServerPost;

    iget-object v4, v4, Lcom/glympse/platform/common/ServerPost;->m_oTrackLocal:Lcom/glympse/platform/common/Track;

    iget-object v5, v3, Lcom/glympse/platform/common/User;->m_oTrackServer:Lcom/glympse/platform/common/Track;

    invoke-virtual {v5}, Lcom/glympse/platform/common/Track;->lastElement()Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/glympse/platform/common/Track$TrackLoc;

    iget-wide v5, p0, Lcom/glympse/platform/common/Track$TrackLoc;->m_lTime:J

    const/4 v7, 0x1

    invoke-virtual {v4, v5, v6, v7}, Lcom/glympse/platform/common/Track;->RemoveOldLocations(JZ)Z

    goto :goto_0

    .line 858
    :cond_2
    iget-object v5, v3, Lcom/glympse/platform/common/User;->m_oLocPoint:Lcom/glympse/platform/common/LocPoint;

    iget-wide v5, v5, Lcom/glympse/platform/common/LocPoint;->m_lLocationTime:J

    goto :goto_1
.end method

.method public UploadAvatar(Lcom/glympse/platform/GImage;I)V
    .locals 1
    .parameter "oImage"
    .parameter "nRotation"

    .prologue
    .line 939
    new-instance v0, Lcom/glympse/platform/common/UploadAvatarJob;

    invoke-direct {v0, p1, p2}, Lcom/glympse/platform/common/UploadAvatarJob;-><init>(Lcom/glympse/platform/GImage;I)V

    .line 940
    return-void
.end method

.method public UserFromId(J)Lcom/glympse/platform/common/User;
    .locals 4
    .parameter "lUserId"

    .prologue
    .line 814
    iget-object v2, p0, Lcom/glympse/platform/common/UserList;->m_listUsers:Lcom/glympse/platform/GVector$Users;

    invoke-virtual {v2}, Lcom/glympse/platform/GVector$Users;->elements()Ljava/util/Enumeration;

    move-result-object v0

    .local v0, iter:Ljava/util/Enumeration;
    :cond_0
    invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-nez v2, :cond_1

    .line 824
    const/4 v2, 0x0

    :goto_0
    return-object v2

    .line 816
    :cond_1
    invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/glympse/platform/common/User;

    .line 818
    .local v1, oUserCur:Lcom/glympse/platform/common/User;
    iget-wide v2, v1, Lcom/glympse/platform/common/User;->m_lUserId:J

    cmp-long v2, v2, p1

    if-nez v2, :cond_0

    move-object v2, v1

    .line 820
    goto :goto_0
.end method
